Network address translation (“NAT”) is the process of modifying Internet protocol (“IP”) address information in IP packet headers while in transit across a network traffic routing device, such as a network router. A “one-to-many” NAT is commonly utilized to hide an entire IP address space, usually consisting of private IP addresses, behind a single IP address in another, commonly public, address space. For example, a one-to-many NAT typically alters higher-level information in outgoing communications, such as transmission control protocol (“TCP”) and user datagram protocol (“UDP”) ports, and maintains a translation table so that return packets can be correctly translated back. Because a one-to-many NAT is the most common type of NAT, it is often referred to simply as a NAT.
One limitation of current NAT implementations is that the same protocol cannot be multiplexed on the same port using a single NAT external network address. For example, two server computers within a NAT network executing a service that utilizes the same port number cannot be accessed from outside the NAT network when only a single external network address is utilized. As a result, services utilizing the same port number within a NAT network are typically assigned their own external network addresses. This configuration, however, results in the use of additional public network addresses, which might be scarce and/or expensive to obtain.
It is with respect to these and other considerations that the disclosure made herein is presented.